1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 29 module derelict.glib.gsequence; 30 31 import derelict.glib.gtypes; 32 import derelict.glib.glibconfig; 33 34 extern (C): 35 36 alias _GSequence GSequence; 37 alias _GSequenceNode GSequenceIter; 38 alias int function (_GSequenceNode*, _GSequenceNode*, void*) GSequenceIterCompareFunc; 39 40 struct _GSequence; 41 42 43 struct _GSequenceNode; 44 45 46 version(Derelict_Link_Static) 47 { 48 extern( C ) nothrow 49 { 50 GSequence* g_sequence_new(GDestroyNotify data_destroy); 51 void g_sequence_free(GSequence* seq); 52 gint g_sequence_get_length(GSequence* seq); 53 void g_sequence_foreach(GSequence* seq, GFunc func, gpointer user_data); 54 void g_sequence_foreach_range(GSequenceIter* begin, GSequenceIter* end, GFunc func, gpointer user_data); 55 void g_sequence_sort(GSequence* seq, GCompareDataFunc cmp_func, gpointer cmp_data); 56 void g_sequence_sort_iter(GSequence* seq, GSequenceIterCompareFunc cmp_func, gpointer cmp_data); 57 GSequenceIter* g_sequence_get_begin_iter(GSequence* seq); 58 GSequenceIter* g_sequence_get_end_iter(GSequence* seq); 59 GSequenceIter* g_sequence_get_iter_at_pos(GSequence* seq, gint pos); 60 GSequenceIter* g_sequence_append(GSequence* seq, gpointer data); 61 GSequenceIter* g_sequence_prepend(GSequence* seq, gpointer data); 62 GSequenceIter* g_sequence_insert_before(GSequenceIter* iter, gpointer data); 63 void g_sequence_move(GSequenceIter* src, GSequenceIter* dest); 64 void g_sequence_swap(GSequenceIter* a, GSequenceIter* b); 65 GSequenceIter* g_sequence_insert_sorted(GSequence* seq, gpointer data, GCompareDataFunc cmp_func, gpointer cmp_data); 66 GSequenceIter* g_sequence_insert_sorted_iter(GSequence* seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data); 67 void g_sequence_sort_changed(GSequenceIter* iter, GCompareDataFunc cmp_func, gpointer cmp_data); 68 void g_sequence_sort_changed_iter(GSequenceIter* iter, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data); 69 void g_sequence_remove(GSequenceIter* iter); 70 void g_sequence_remove_range(GSequenceIter* begin, GSequenceIter* end); 71 void g_sequence_move_range(GSequenceIter* dest, GSequenceIter* begin, GSequenceIter* end); 72 GSequenceIter* g_sequence_search(GSequence* seq, gpointer data, GCompareDataFunc cmp_func, gpointer cmp_data); 73 GSequenceIter* g_sequence_search_iter(GSequence* seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data); 74 GSequenceIter* g_sequence_lookup(GSequence* seq, gpointer data, GCompareDataFunc cmp_func, gpointer cmp_data); 75 GSequenceIter* g_sequence_lookup_iter(GSequence* seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data); 76 gpointer g_sequence_get(GSequenceIter* iter); 77 void g_sequence_set(GSequenceIter* iter, gpointer data); 78 gboolean g_sequence_iter_is_begin(GSequenceIter* iter); 79 gboolean g_sequence_iter_is_end(GSequenceIter* iter); 80 GSequenceIter* g_sequence_iter_next(GSequenceIter* iter); 81 GSequenceIter* g_sequence_iter_prev(GSequenceIter* iter); 82 gint g_sequence_iter_get_position(GSequenceIter* iter); 83 GSequenceIter* g_sequence_iter_move(GSequenceIter* iter, gint delta); 84 GSequence* g_sequence_iter_get_sequence(GSequenceIter* iter); 85 gint g_sequence_iter_compare(GSequenceIter* a, GSequenceIter* b); 86 GSequenceIter* g_sequence_range_get_midpoint(GSequenceIter* begin, GSequenceIter* end); 87 } 88 } 89 else 90 { 91 extern( C ) nothrow 92 { 93 alias da_g_sequence_new = GSequence* function(GDestroyNotify data_destroy); 94 alias da_g_sequence_free = void function(GSequence* seq); 95 alias da_g_sequence_get_length = gint function(GSequence* seq); 96 alias da_g_sequence_foreach = void function(GSequence* seq, GFunc func, gpointer user_data); 97 alias da_g_sequence_foreach_range = void function(GSequenceIter* begin, GSequenceIter* end, GFunc func, gpointer user_data); 98 alias da_g_sequence_sort = void function(GSequence* seq, GCompareDataFunc cmp_func, gpointer cmp_data); 99 alias da_g_sequence_sort_iter = void function(GSequence* seq, GSequenceIterCompareFunc cmp_func, gpointer cmp_data); 100 alias da_g_sequence_get_begin_iter = GSequenceIter* function(GSequence* seq); 101 alias da_g_sequence_get_end_iter = GSequenceIter* function(GSequence* seq); 102 alias da_g_sequence_get_iter_at_pos = GSequenceIter* function(GSequence* seq, gint pos); 103 alias da_g_sequence_append = GSequenceIter* function(GSequence* seq, gpointer data); 104 alias da_g_sequence_prepend = GSequenceIter* function(GSequence* seq, gpointer data); 105 alias da_g_sequence_insert_before = GSequenceIter* function(GSequenceIter* iter, gpointer data); 106 alias da_g_sequence_move = void function(GSequenceIter* src, GSequenceIter* dest); 107 alias da_g_sequence_swap = void function(GSequenceIter* a, GSequenceIter* b); 108 alias da_g_sequence_insert_sorted = GSequenceIter* function(GSequence* seq, gpointer data, GCompareDataFunc cmp_func, gpointer cmp_data); 109 alias da_g_sequence_insert_sorted_iter = GSequenceIter* function(GSequence* seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data); 110 alias da_g_sequence_sort_changed = void function(GSequenceIter* iter, GCompareDataFunc cmp_func, gpointer cmp_data); 111 alias da_g_sequence_sort_changed_iter = void function(GSequenceIter* iter, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data); 112 alias da_g_sequence_remove = void function(GSequenceIter* iter); 113 alias da_g_sequence_remove_range = void function(GSequenceIter* begin, GSequenceIter* end); 114 alias da_g_sequence_move_range = void function(GSequenceIter* dest, GSequenceIter* begin, GSequenceIter* end); 115 alias da_g_sequence_search = GSequenceIter* function(GSequence* seq, gpointer data, GCompareDataFunc cmp_func, gpointer cmp_data); 116 alias da_g_sequence_search_iter = GSequenceIter* function(GSequence* seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data); 117 alias da_g_sequence_lookup = GSequenceIter* function(GSequence* seq, gpointer data, GCompareDataFunc cmp_func, gpointer cmp_data); 118 alias da_g_sequence_lookup_iter = GSequenceIter* function(GSequence* seq, gpointer data, GSequenceIterCompareFunc iter_cmp, gpointer cmp_data); 119 alias da_g_sequence_get = gpointer function(GSequenceIter* iter); 120 alias da_g_sequence_set = void function(GSequenceIter* iter, gpointer data); 121 alias da_g_sequence_iter_is_begin = gboolean function(GSequenceIter* iter); 122 alias da_g_sequence_iter_is_end = gboolean function(GSequenceIter* iter); 123 alias da_g_sequence_iter_next = GSequenceIter* function(GSequenceIter* iter); 124 alias da_g_sequence_iter_prev = GSequenceIter* function(GSequenceIter* iter); 125 alias da_g_sequence_iter_get_position = gint function(GSequenceIter* iter); 126 alias da_g_sequence_iter_move = GSequenceIter* function(GSequenceIter* iter, gint delta); 127 alias da_g_sequence_iter_get_sequence = GSequence* function(GSequenceIter* iter); 128 alias da_g_sequence_iter_compare = gint function(GSequenceIter* a, GSequenceIter* b); 129 alias da_g_sequence_range_get_midpoint = GSequenceIter* function(GSequenceIter* begin, GSequenceIter* end); 130 } 131 132 __gshared 133 { 134 da_g_sequence_new g_sequence_new; 135 da_g_sequence_free g_sequence_free; 136 da_g_sequence_get_length g_sequence_get_length; 137 da_g_sequence_foreach g_sequence_foreach; 138 da_g_sequence_foreach_range g_sequence_foreach_range; 139 da_g_sequence_sort g_sequence_sort; 140 da_g_sequence_sort_iter g_sequence_sort_iter; 141 da_g_sequence_get_begin_iter g_sequence_get_begin_iter; 142 da_g_sequence_get_end_iter g_sequence_get_end_iter; 143 da_g_sequence_get_iter_at_pos g_sequence_get_iter_at_pos; 144 da_g_sequence_append g_sequence_append; 145 da_g_sequence_prepend g_sequence_prepend; 146 da_g_sequence_insert_before g_sequence_insert_before; 147 da_g_sequence_move g_sequence_move; 148 da_g_sequence_swap g_sequence_swap; 149 da_g_sequence_insert_sorted g_sequence_insert_sorted; 150 da_g_sequence_insert_sorted_iter g_sequence_insert_sorted_iter; 151 da_g_sequence_sort_changed g_sequence_sort_changed; 152 da_g_sequence_sort_changed_iter g_sequence_sort_changed_iter; 153 da_g_sequence_remove g_sequence_remove; 154 da_g_sequence_remove_range g_sequence_remove_range; 155 da_g_sequence_move_range g_sequence_move_range; 156 da_g_sequence_search g_sequence_search; 157 da_g_sequence_search_iter g_sequence_search_iter; 158 da_g_sequence_lookup g_sequence_lookup; 159 da_g_sequence_lookup_iter g_sequence_lookup_iter; 160 da_g_sequence_get g_sequence_get; 161 da_g_sequence_set g_sequence_set; 162 da_g_sequence_iter_is_begin g_sequence_iter_is_begin; 163 da_g_sequence_iter_is_end g_sequence_iter_is_end; 164 da_g_sequence_iter_next g_sequence_iter_next; 165 da_g_sequence_iter_prev g_sequence_iter_prev; 166 da_g_sequence_iter_get_position g_sequence_iter_get_position; 167 da_g_sequence_iter_move g_sequence_iter_move; 168 da_g_sequence_iter_get_sequence g_sequence_iter_get_sequence; 169 da_g_sequence_iter_compare g_sequence_iter_compare; 170 da_g_sequence_range_get_midpoint g_sequence_range_get_midpoint; 171 } 172 }